//////////////////////////////////////////////////////////////////////////

#ifndef _BUTTON_H_
#define _BUTTON_H_

#ifndef _CONTROL_H_
#include "control.h"
#endif

#ifndef _IMAGES_H_
#include "images.h"
#endif

#ifndef _COLORS_H_
#include "colors.h"
#endif

#ifndef _FONTS_H_
#include "fonts.h"
#endif

class Input;
class GUI_Theme;
class GUI_ImageSurface;
class GUI_TextSurface;
struct SDL_Surface;


class GUI_Button : public GUI_Control
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////

    GUI_Button(GUI_Images::Image _backgrount, GUI_Fonts::Font _font, GUI_Colors::Color _color, const std::string& _text, GUI_Images::Image _hover, float _left, float _top, char _textAllign = 0, float _horisontalMargin = 0.0, float _verticalMargin = 0.0);
    virtual ~GUI_Button();

    /** Key change handler */
    virtual InputResult OnKeyChanged(Input* _input);

//////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
